This disclosure relates generally to computer controlled systems for digital document processing within a networked environment, and more particularly to a system and method in which an operator creates and specifies resource management profiles for optimization of resource utilization for various printing tasks.
In the area of digital printing and copying, various approaches have been applied in an attempt to optimize resource utilization for digital printing tasks. One such approach is dynamic memory allocation, which is the allocation of memory storage for use in a specific purpose or job during the runtime of that job. It is a way of distributing ownership of limited memory resources among many pieces of data and code. This approach works well for relatively small blocks of memory, or when memory does not have to be contiguous. However, it does not work well when it is necessary to reserve large, contiguous areas in memory for various purposes.
Another approach is trial and error, in which the size of large static memory allocations is determined independently, based on the needs of various system components, without consideration of the system as a whole. In this case, developers must make manual adjustments to the size of specific memory pools to address performance or related problems. Yet another approach is user level tools and interfaces. Such tools allow the user to adjust allocations for specific features, but typically require a high skill level, are not coordinated across components, and only allow one feature at a time to be adjusted. System administrators often must use these tools on a trial and error basis. An alternate approach is application of a resource budget. Based on expected system use, internal software assigns a percentage of memory, or other resources, to each component. This works well for systems with consistent patterns of resource use, but can be very inefficient for systems, such as high end printing systems, with large variations in usage patterns between sites or applications.
It would be useful to have a resource management approach that would allow an operator to enable or disable specific features to provide resource allocation. Such an approach would enable more efficient use of resources, such as memory, within high end printing systems, and would provide for coordinated allocations across components. This would avoid the problems associated with trial and error allocations and the need to reserve memory for various purposes. Additionally, it would provide effective utilization of resources in those situations in which there are large variations in usage patterns or applications.
All U.S. patents and published U.S. patent applications cited herein are fully incorporated by reference. The following patents or publications are noted.
U.S. Patent Application Publication No. 2005/0149940 to Calinescu et al. (“System Providing Methodology for Policy-Based Resource Allocation”) describes a system for allocating computer resources among a plurality of applications based on a policy. The system includes a plurality of computers connected to one another through a network and a policy engine for specifying a policy for allocation of resources of the plurality of computers among a plurality of applications having access to the resources. A monitoring module at each computer detects demands for the resources and exchanges information regarding demands for the resources of the computers. An enforcement module at each computer allocates the resources among the plurality of applications based on the policy and information regarding demands for the resources.
U.S. Patent Application Publication No. 2004/0095602 to Sugishita et al. (“Multifunction Peripheral with Efficient Use of Memory Resources”) describes an image forming apparatus that includes an off-line unit which places one or more processes in an off-line state in which restriction is placed on running of the processes. A memory area releasing unit releases one or more memory areas used by the processes that are in the off-line state, and a data unit places data in the memory areas released by the memory area releasing unit.
U.S. Pat. No. 5,717,842 to Ambalavanar et al. (“Method of Managing Memory Allocation in a Printing System”) describes a method of managing memory allocation in a printing system including the steps of creating a plurality of blocks and designating each block with an identifier. In response to a request from a component, a first set of identifiers, corresponding to a first set of blocks, is placed into a database by a resource manager. The component then accesses the database and, by reference to the first set of identifiers, begins filling up the first set of blocks with image data. As each block is filled, the client transmits an interrupt signal to a controller. After a predesignated one of the first set of blocks has been filled, the controller causes the resource manager to place a second set of identifiers in the database so that the client can access the second set of identifiers as soon as it has completed filling the first set of blocks.
The disclosed embodiments provide examples of improved solutions to the problems noted in the above Background discussion and the art cited therein. There is shown in these examples an improved resource management graphical user interface for a computer-controlled printing system in a networked environment to enable an operator to create, modify, and apply resource management profiles to coordinate resource allocation within the printing system. The user interface displays a current resource management profile, which includes printing system resource allocations associated with specific tasks. A resource profile list includes at least one profile name, corresponding to a task type. Jobs associated with the task type are presented and controls are provided to enable the operator to set allocations for component resource usage. The operator is also presented with operational options, including deleting a profile, approving a profile, applying a profile to a print job or series of print jobs, saving a new profile, replacing an existing profile, and canceling a profile modification. The user interface transmits instructions to apply a profile to a printing system for processing of print jobs.
In an alternate embodiment there is disclosed a method for computer control of collaborating devices in a networked environment, enabling an operator to access a resource management graphical user interface to create, modify, and apply resource management profiles to coordinate resource allocation among the collaborating devices. The method includes reviewing a current resource management profile having resource allocation settings associated with specific tasks. A determination is made as to whether the current profile settings are adequate to efficiently perform a job. If the current profile settings are adequate, the device is instructed to apply the profile to the specifications for the job. This causes the collaborating device to free previously allocated resources, determine component resource allotments based on the selected profile, allocate resources for components based on the resource allotments, and perform a job using the selected profile based resource allocations. If the current profile settings are not adequate to efficiently perform the job, an alternate profile is identified. The operator requests a profile list display, which includes various profile names, which are associated with a task type. The profiles associated with the profile name are reviewed and a determination is made whether a specific profile satisfies the profile setting requirements for the job. If so, the profile is selected and the device is instructed to apply the selected profile to the specifications for the job. If none of the profiles associated with a profile name satisfy the profile setting requirements for the job, a new profile is created.
In yet another embodiment, there is disclosed a system for computer control of collaborating devices to enable an operator to access a resource management graphical user interface to create, modify, and apply resource management profiles to coordinate resource allocation among the collaborating devices. The system provides capability for reviewing current resource management profiles and determining whether a current profile setting are sufficient to efficiently perform a job. If the current profile settings are adequate, the collaborating devices are instructed to apply the profile to the specifications for a job, causing the collaborating devices to free previously allocated resources, determine component resource allotments based on the selected profile, allocate resources for components based on the resource allotments, and perform the job. If adequate profile settings are not identified, an alternate profile is identified. To accomplish this, the system provides a profile list display for review by the operator. If an alternate profile is identified from the profile list, the profile is selected and the device is instructed to apply the profile to the specifications of the job. If an alternate profile is not identified, a new profile is created.